package com.xbongbong.pro.customerstatement.pojo;

import com.alibaba.fastjson.JSONArray;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;

/**
 * @author zcp
 * @version v1.0
 * @since v1.0
 */
@Getter
@Setter
@ToString
public class StatementTableDataExportPojo implements Serializable {
    private static final long serialVersionUID = -564908813899977638L;
    /**
     * 对账日期
     */
    private String checkingDate;
    /**
     * 类型
     */
    private String businessType;
    /**
     * 对账单据
     */
    private String statementId;
    /**
     * 关联客户
     */
    private String customerId;
    /**
     * 关联合同
     */
    private String contractId;
    /**
     * 来源单据
     */
    private String sourceId;
    /**
     * 关联产品相关字段
     */
    private JSONArray array_1;
    /**
     * 其它费用
     */
    private String otherExpense;
    /**
     * 应收金额
     */
    private String amountReceivable;
    /**
     * 回款金额
     */
    private String amountReceived;
    /**
     * 核销金额
     */
    private String writeOffAmount;
    /**
     * 应收余额
     */
    private String balanceReceivable;
    /**
     * 应收余额中文
     */
    private String balanceReceivableChinese;

    /**
     * 回款类型
     */
    private String paymentType;

    public StatementTableDataExportPojo() {
    }

    public StatementTableDataExportPojo(String checkingDate, String businessType, String statementId, String contractId, String sourceId, String amountReceivable, String amountReceived, String writeOffAmount, String balanceReceivable,String paymentType) {
        this.checkingDate = checkingDate;
        this.businessType = businessType;
        this.statementId = statementId;
        this.contractId = contractId;
        this.sourceId = sourceId;
        this.amountReceivable = amountReceivable;
        this.amountReceived = amountReceived;
        this.writeOffAmount = writeOffAmount;
        this.balanceReceivable = balanceReceivable;
        this.paymentType = paymentType;
    }

    public StatementTableDataExportPojo(String checkingDate, String businessType, String balanceReceivable) {
        //期初行信息封装
        this.checkingDate = checkingDate;
        this.businessType = businessType;
        this.balanceReceivable = balanceReceivable;
    }

    public StatementTableDataExportPojo(String checkingDate, String amountReceivable, String amountReceived, String writeOffAmount, String balanceReceivable, String balanceReceivableChinese) {
        //对账单导出时，合计/剩余行信息封装
        this.checkingDate = checkingDate;
        this.amountReceivable = amountReceivable;
        this.amountReceived = amountReceived;
        this.writeOffAmount = writeOffAmount;
        this.balanceReceivable = balanceReceivable;
        this.balanceReceivableChinese = balanceReceivableChinese;
    }
}
